package com.ronz.sort;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * @Description 排序_冒泡排序
 * @Author Ronz
 * @Date 2021/1/5 21:37
 * @Version 1.0
 */
public class No1_BubbleSort {

    public static void main(String[] args) {
        int[] arr = {5,7,2,1,8,3};

        System.out.print("原始序列为：");
        System.out.println(Arrays.toString(arr));

        bubbleSort(arr);

        System.out.print("最终结果为：");
        System.out.println(Arrays.toString(arr));
    }


    /**
     * @Description 冒泡排序
     * @Param [arr]
     * @return void
     */
    public static void bubbleSort(int[] arr){

        boolean flag = false;
        int temp;
        for (int i=1; i<arr.length; i++){
            for (int j=0; j<arr.length-i; j++){
                if (arr[j] > arr[j+1]){
                    flag = true;       // 还有元素需要交换，因此要置为 true
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
            if (!flag){ // 如果这一轮没有发生交换，就退出
                break;
            }else{
                flag = false;
            }
            System.out.print("第 " + i + " 轮排序后的结果为：");
            System.out.println(Arrays.toString(arr));
        }
    }

}
